/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-1-18 下午7:36 Created by dwzhang
 */
package com.jade.modules.template;

import java.util.List;

import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.util.PagingList;

/**
 * 内容模版数据访问接口。
 *
 * @author <a href="mailto:dwzhang@xunton.com">dwzhang</a> 
 * @version 1.0 15-1-18 下午7:36
 */
public interface TemplateDao
{
    /**
     * 创建模版。
     *
     * @param template 模版信息。
     * @throws TemplateException 处理异常。
     */
    public void add(Template template)
            throws TemplateException;

    /**
     * 更新模版.
     *
     * @param template 模版信息。
     * @throws TemplateException 处理异常
     */
    public void update(Template template)
            throws TemplateException;

    /**
     * 删除模版。
     *
     * @param template 内容模版
     * @throws TemplateException 处理异常。
     */
    public void remove(Template template)
            throws TemplateException;

    /**
     *  获取模版详细信息。
     *
     * @param id 模版标识
     * @return 模版信息对象
     */
    public Template get(long id);

    /**
     * 根据条件列出模版。
     *
     * @param criteria 查询条件
     * @return 模版列表
     */
    public List<Template> list(Criteria criteria);

    /**
     * 根据条件分页列出模版。
     *
     * @param criteria 查询条件
     * @return 模版列表。
     */
    public PagingList<Template> query(Criteria criteria);
}
